金牌、银牌、铜牌 您所在的位置:网站首页 acm 银牌 金牌、银牌、铜牌

金牌、银牌、铜牌

2024-07-15 07:16| 来源: 网络整理| 查看: 265

金牌、银牌、铜牌 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description

Acm——大学中四大竞赛之首——是极具挑战性的大学生竞赛形式。在一场acm比赛中,一个参赛队伍由三人组合而成,在最短的时间内做出尽可能多的题目而且要尽量少提交错误代码,这样才能得到更高的排名。现在让我们模拟一次不正规的acm比赛,假设在比赛开始后30分钟(这时已经有不少同学提交了代码,在rating中已经出现),到比赛结束前,又有新的同学提交(在rating中出现),同时rating在不断变化着,还有一些同学因为一些原因中途退出比赛(这时rating中自动删除,当然在正式比赛中不会有这种情况)。最后终于比赛结束啦,看看rating,都有谁能拿到奖牌呢?

Input

第一行一个整数n(nnext=q;             q->next=t;             break;         }         else         {             p=p->next;             t=t->next;         }     }     if(flag)     {         p->next=q;         q->next=NULL;     } } void Q() {     cnt--;     struct node *p,*t;     char wh[30];     scanf("%s",wh);     p=head;     t=p->next;     while(t)     {         if(strcmp(wh,t->name)==0)         {             p->next=t->next;             free(t);             break;         }         else         {             p=p->next;             t=p->next;         }     } } void C() {     char wh[30];     int x;     scanf("%s %d",wh,&x);     struct node *p,*q,*t;     p=head;     q=head->next;     while(q)     {         if(strcmp(wh,q->name)==0)         {             q->score+=x;             p->next=q->next;             break;         }         else         {             p=p->next;             q=q->next;         }     }     p=head;     t=head->next;     int flag=1;     while(t)     {         if(t->scorescore)         {             flag=0;             p->next=q;             q->next=t;             break;         }         else         {             p=p->next;             t=t->next;         }     }     if(flag)     {         t->next=q;         q->next=NULL;     } } void S() {     struct node *p;     p=head->next;     while(p)     {         printf("%s %d\n",p->name,p->score);         p=p->next;     }     printf("\n"); } void O() {     struct node *p;     printf("#1 :");     int k;     p=head->next;     while(p)     {         printf(" %s",p->name);         k=p->score;         p=p->next;         head=head->next;         if(k==p->score&&p)             continue;         else             break;     }     printf("\n");     printf("#2 :");     int cc=0;     p=head->next;     while(p)     {         printf(" %s",p->name);         cc++;         k=p->score;         head=head->next;         p=p->next;         if(cc>=2)         {             if(k==p->score)                 continue;             else                 break;         }     }     printf("\n");     printf("#3 :");     int ccc=0;     p=head->next;     while(p)     {         printf(" %s",p->name);         ccc++;         k=p->score;         head=head->next;         p=p->next;         if(ccc>=3)         {             if(k==p->score)                 continue;             else                 break;         }     }     printf("\n"); } int main() {     int n,i;     char ch[25];     scanf("%d",&n);     cnt=n;     struct node *p,*q;     head=(struct node*)malloc(sizeof(struct node));     head->next=NULL;     p=head;     for(i=0; iname,&q->score);         q->next=NULL;         p->next=q;         p=p->next;     }     while(~scanf("%s",ch))     {         if(ch[0]=='A')         {             A();         }         else if(ch[0]=='Q')         {             Q();         }         else if(ch[0]=='C')         {             C();         }         else if(ch[0]=='S')         {             S();         }         else if(ch[0]=='O')         {             O();             break;         }     }     return 0; }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有